\hypertarget{class_code_generator}{\section{Code\+Generator Class Reference}
\label{class_code_generator}\index{Code\+Generator@{Code\+Generator}}
}


C Code Generator.  




{\ttfamily \#include $<$Code\+Generator.\+h$>$}

Inheritance diagram for Code\+Generator\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{class_code_generator}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_code_generator_af309243e4a8a0274b785aadf416fe5c8}{Code\+Generator} (string filename)
\begin{DoxyCompactList}\small\item\em \hyperlink{class_code_generator}{Code\+Generator} constructor. \end{DoxyCompactList}\item 
\hyperlink{class_code_generator_ad272915898f3ed69614de37c0442c357}{$\sim$\+Code\+Generator} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{class_code_generator}{Code\+Generator} destructor. \end{DoxyCompactList}\item 
void \hyperlink{class_code_generator_a34311fc43b053d187bc0e1ff4128a8b6}{Visit\+Program} (\hyperlink{class_a_s_t_node}{A\+S\+T\+Node} $\ast$node)
\begin{DoxyCompactList}\small\item\em visit a Program node. \end{DoxyCompactList}\item 
void \hyperlink{class_code_generator_a938a2c7e05bb717abbf4f042a723e2e3}{Visit\+Name} (\hyperlink{class_a_s_t_node}{A\+S\+T\+Node} $\ast$node)
\begin{DoxyCompactList}\small\item\em visit a Name node. \end{DoxyCompactList}\item 
void \hyperlink{class_code_generator_aaf381a525658f7f7af805b494aab63c0}{Visit\+Variable} (\hyperlink{class_a_s_t_node}{A\+S\+T\+Node} $\ast$node)
\begin{DoxyCompactList}\small\item\em visit a Variable node. \end{DoxyCompactList}\item 
void \hyperlink{class_code_generator_abdf24276fbd57a66defad1fd26ab6b5f}{Visit\+Rules} (\hyperlink{class_a_s_t_node}{A\+S\+T\+Node} $\ast$node)
\begin{DoxyCompactList}\small\item\em visit a Rules node. \end{DoxyCompactList}\item 
void \hyperlink{class_code_generator_a749ecd378e19750fb02f64fb1ed6208e}{Visit\+Rules\+Set} (\hyperlink{class_a_s_t_node}{A\+S\+T\+Node} $\ast$node)
\begin{DoxyCompactList}\small\item\em visit a Rules Set node. \end{DoxyCompactList}\item 
void \hyperlink{class_code_generator_ad97e2a05a3d2a9465dc23ee3c8008320}{Visit\+Rule} (\hyperlink{class_a_s_t_node}{A\+S\+T\+Node} $\ast$node)
\begin{DoxyCompactList}\small\item\em visit a Rule node. \end{DoxyCompactList}\item 
void \hyperlink{class_code_generator_a83bc08b798440c64724bff2c81ab37b0}{Visit\+Condition} (\hyperlink{class_a_s_t_node}{A\+S\+T\+Node} $\ast$node)
\begin{DoxyCompactList}\small\item\em visit a Condition node. \end{DoxyCompactList}\item 
void \hyperlink{class_code_generator_ae624dff58aa6f4db5038c119dc590f6a}{Visit\+Logic\+Operator} (\hyperlink{class_a_s_t_node}{A\+S\+T\+Node} $\ast$node)
\begin{DoxyCompactList}\small\item\em visit a Logic Operator node. \end{DoxyCompactList}\item 
void \hyperlink{class_code_generator_a892b2452e473441c44b60582cdbb8b39}{Visit\+Internal\+Condition} (\hyperlink{class_a_s_t_node}{A\+S\+T\+Node} $\ast$node)
\begin{DoxyCompactList}\small\item\em visit a Internal Condition node. \end{DoxyCompactList}\item 
void \hyperlink{class_code_generator_ae81907e0b0f710fa6a92782894b93ccc}{Visit\+Comparation\+Operator} (\hyperlink{class_a_s_t_node}{A\+S\+T\+Node} $\ast$node)
\begin{DoxyCompactList}\small\item\em visit a Comparation Operator node. \end{DoxyCompactList}\item 
void \hyperlink{class_code_generator_a3b126981eeee7f1c81b5fbfbe576ee57}{Visit\+Arithmetic\+Operator} (\hyperlink{class_a_s_t_node}{A\+S\+T\+Node} $\ast$node)
\begin{DoxyCompactList}\small\item\em visit a Arithmetic Operator node. \end{DoxyCompactList}\item 
void \hyperlink{class_code_generator_aa852475141658c33651ea2eb79b1cad6}{Visit\+Arithmetic\+Expression} (\hyperlink{class_a_s_t_node}{A\+S\+T\+Node} $\ast$node)
\begin{DoxyCompactList}\small\item\em visit a Arithmetic Expression node. \end{DoxyCompactList}\item 
void \hyperlink{class_code_generator_a4999896cab15d908a15057a867f26b39}{Visit\+Action} (\hyperlink{class_a_s_t_node}{A\+S\+T\+Node} $\ast$node)
\begin{DoxyCompactList}\small\item\em visit a Action node. \end{DoxyCompactList}\item 
void \hyperlink{class_code_generator_a86894cd93f82386c698c85d2aafea6b6}{Visit\+Command} (\hyperlink{class_a_s_t_node}{A\+S\+T\+Node} $\ast$node)
\begin{DoxyCompactList}\small\item\em visit a Commands node. \end{DoxyCompactList}\item 
void \hyperlink{class_code_generator_a4cb8ce5ca2adfae194d919955dfac683}{Visit\+Cmd} (\hyperlink{class_a_s_t_node}{A\+S\+T\+Node} $\ast$node)
\begin{DoxyCompactList}\small\item\em visit a Cmd node. \end{DoxyCompactList}\item 
void \hyperlink{class_code_generator_a58b6c7f86b73af59756232a02bbcdf92}{Visit\+Assignment} (\hyperlink{class_a_s_t_node}{A\+S\+T\+Node} $\ast$node)
\begin{DoxyCompactList}\small\item\em visit a Assignment node. \end{DoxyCompactList}\item 
void \hyperlink{class_code_generator_a3f33634b3560060f93cf2e6c4856944d}{Visit\+Read\+Sensor} (\hyperlink{class_a_s_t_node}{A\+S\+T\+Node} $\ast$node)
\begin{DoxyCompactList}\small\item\em visit a Read Sensor node. \end{DoxyCompactList}\item 
void \hyperlink{class_code_generator_a69edbd517b828ecf95546e8499625b33}{Visit\+Write\+Actuator} (\hyperlink{class_a_s_t_node}{A\+S\+T\+Node} $\ast$node)
\begin{DoxyCompactList}\small\item\em visit a Write Actuator node. \end{DoxyCompactList}\item 
void \hyperlink{class_code_generator_ac76873dd0e7e1d28ca90d6bc4d5a0cf2}{Visit\+Identifier} (\hyperlink{class_a_s_t_node}{A\+S\+T\+Node} $\ast$node)
\begin{DoxyCompactList}\small\item\em visit a Identifier node. \end{DoxyCompactList}\item 
void \hyperlink{class_code_generator_a02a7c10944dc4f3eb1c24f9c9820ed1e}{Visit\+Number} (\hyperlink{class_a_s_t_node}{A\+S\+T\+Node} $\ast$node)
\begin{DoxyCompactList}\small\item\em visit a Number node. \end{DoxyCompactList}\item 
void \hyperlink{class_code_generator_aed794eaaf5a4d0e4e1f0ffd5d76b8884}{Visit\+Message} (\hyperlink{class_a_s_t_node}{A\+S\+T\+Node} $\ast$node)
\begin{DoxyCompactList}\small\item\em visit a Message node. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
ofstream \hyperlink{class_code_generator_ab14d47d4ee889675dff7e310cd30ac41}{generated\+Code\+File}
\begin{DoxyCompactList}\small\item\em Output file. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
C Code Generator. 

Implements the \hyperlink{class_i_visitor}{I\+Visitor} interface. \begin{DoxyAuthor}{Author}
Caio Arce Nishibe (\href{mailto:caionishibe@gmail.com}{\tt caionishibe@gmail.\+com}) 
\end{DoxyAuthor}
\begin{DoxyDate}{Date}
August, 2014 
\end{DoxyDate}


\subsection{Constructor \& Destructor Documentation}
\hypertarget{class_code_generator_af309243e4a8a0274b785aadf416fe5c8}{\index{Code\+Generator@{Code\+Generator}!Code\+Generator@{Code\+Generator}}
\index{Code\+Generator@{Code\+Generator}!Code\+Generator@{Code\+Generator}}
\subsubsection[{Code\+Generator}]{\setlength{\rightskip}{0pt plus 5cm}Code\+Generator\+::\+Code\+Generator (
\begin{DoxyParamCaption}
\item[{string}]{filename}
\end{DoxyParamCaption}
)}}\label{class_code_generator_af309243e4a8a0274b785aadf416fe5c8}


\hyperlink{class_code_generator}{Code\+Generator} constructor. 

Create an output file with a given name. 
\begin{DoxyParams}{Parameters}
{\em filename} & output file name. \\
\hline
\end{DoxyParams}
\hypertarget{class_code_generator_ad272915898f3ed69614de37c0442c357}{\index{Code\+Generator@{Code\+Generator}!````~Code\+Generator@{$\sim$\+Code\+Generator}}
\index{````~Code\+Generator@{$\sim$\+Code\+Generator}!Code\+Generator@{Code\+Generator}}
\subsubsection[{$\sim$\+Code\+Generator}]{\setlength{\rightskip}{0pt plus 5cm}Code\+Generator\+::$\sim$\+Code\+Generator (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{class_code_generator_ad272915898f3ed69614de37c0442c357}


\hyperlink{class_code_generator}{Code\+Generator} destructor. 



\subsection{Member Function Documentation}
\hypertarget{class_code_generator_a4999896cab15d908a15057a867f26b39}{\index{Code\+Generator@{Code\+Generator}!Visit\+Action@{Visit\+Action}}
\index{Visit\+Action@{Visit\+Action}!Code\+Generator@{Code\+Generator}}
\subsubsection[{Visit\+Action}]{\setlength{\rightskip}{0pt plus 5cm}void Code\+Generator\+::\+Visit\+Action (
\begin{DoxyParamCaption}
\item[{{\bf A\+S\+T\+Node} $\ast$}]{node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{class_code_generator_a4999896cab15d908a15057a867f26b39}


visit a Action node. 


\begin{DoxyParams}{Parameters}
{\em node} & node to be visited. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_i_visitor_afb48e355eff12958512a9fb73e055678}{I\+Visitor}.

\hypertarget{class_code_generator_aa852475141658c33651ea2eb79b1cad6}{\index{Code\+Generator@{Code\+Generator}!Visit\+Arithmetic\+Expression@{Visit\+Arithmetic\+Expression}}
\index{Visit\+Arithmetic\+Expression@{Visit\+Arithmetic\+Expression}!Code\+Generator@{Code\+Generator}}
\subsubsection[{Visit\+Arithmetic\+Expression}]{\setlength{\rightskip}{0pt plus 5cm}void Code\+Generator\+::\+Visit\+Arithmetic\+Expression (
\begin{DoxyParamCaption}
\item[{{\bf A\+S\+T\+Node} $\ast$}]{node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{class_code_generator_aa852475141658c33651ea2eb79b1cad6}


visit a Arithmetic Expression node. 


\begin{DoxyParams}{Parameters}
{\em node} & node to be visited. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_i_visitor_a2a3c962f35fa5899e25517bc18011274}{I\+Visitor}.

\hypertarget{class_code_generator_a3b126981eeee7f1c81b5fbfbe576ee57}{\index{Code\+Generator@{Code\+Generator}!Visit\+Arithmetic\+Operator@{Visit\+Arithmetic\+Operator}}
\index{Visit\+Arithmetic\+Operator@{Visit\+Arithmetic\+Operator}!Code\+Generator@{Code\+Generator}}
\subsubsection[{Visit\+Arithmetic\+Operator}]{\setlength{\rightskip}{0pt plus 5cm}void Code\+Generator\+::\+Visit\+Arithmetic\+Operator (
\begin{DoxyParamCaption}
\item[{{\bf A\+S\+T\+Node} $\ast$}]{node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{class_code_generator_a3b126981eeee7f1c81b5fbfbe576ee57}


visit a Arithmetic Operator node. 


\begin{DoxyParams}{Parameters}
{\em node} & node to be visited. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_i_visitor_ac60e479891f68b06183c58f8584d8bcd}{I\+Visitor}.

\hypertarget{class_code_generator_a58b6c7f86b73af59756232a02bbcdf92}{\index{Code\+Generator@{Code\+Generator}!Visit\+Assignment@{Visit\+Assignment}}
\index{Visit\+Assignment@{Visit\+Assignment}!Code\+Generator@{Code\+Generator}}
\subsubsection[{Visit\+Assignment}]{\setlength{\rightskip}{0pt plus 5cm}void Code\+Generator\+::\+Visit\+Assignment (
\begin{DoxyParamCaption}
\item[{{\bf A\+S\+T\+Node} $\ast$}]{node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{class_code_generator_a58b6c7f86b73af59756232a02bbcdf92}


visit a Assignment node. 


\begin{DoxyParams}{Parameters}
{\em node} & node to be visited. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_i_visitor_a09f419f349073c475f3fce20039972d1}{I\+Visitor}.

\hypertarget{class_code_generator_a4cb8ce5ca2adfae194d919955dfac683}{\index{Code\+Generator@{Code\+Generator}!Visit\+Cmd@{Visit\+Cmd}}
\index{Visit\+Cmd@{Visit\+Cmd}!Code\+Generator@{Code\+Generator}}
\subsubsection[{Visit\+Cmd}]{\setlength{\rightskip}{0pt plus 5cm}void Code\+Generator\+::\+Visit\+Cmd (
\begin{DoxyParamCaption}
\item[{{\bf A\+S\+T\+Node} $\ast$}]{node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{class_code_generator_a4cb8ce5ca2adfae194d919955dfac683}


visit a Cmd node. 


\begin{DoxyParams}{Parameters}
{\em node} & node to be visited. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_i_visitor_af2f84ff7ad35664db206b2be623820c1}{I\+Visitor}.

\hypertarget{class_code_generator_a86894cd93f82386c698c85d2aafea6b6}{\index{Code\+Generator@{Code\+Generator}!Visit\+Command@{Visit\+Command}}
\index{Visit\+Command@{Visit\+Command}!Code\+Generator@{Code\+Generator}}
\subsubsection[{Visit\+Command}]{\setlength{\rightskip}{0pt plus 5cm}void Code\+Generator\+::\+Visit\+Command (
\begin{DoxyParamCaption}
\item[{{\bf A\+S\+T\+Node} $\ast$}]{node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{class_code_generator_a86894cd93f82386c698c85d2aafea6b6}


visit a Commands node. 


\begin{DoxyParams}{Parameters}
{\em node} & node to be visited. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_i_visitor_a198cd01f71a89aa4f1b941ceb618cb1c}{I\+Visitor}.

\hypertarget{class_code_generator_ae81907e0b0f710fa6a92782894b93ccc}{\index{Code\+Generator@{Code\+Generator}!Visit\+Comparation\+Operator@{Visit\+Comparation\+Operator}}
\index{Visit\+Comparation\+Operator@{Visit\+Comparation\+Operator}!Code\+Generator@{Code\+Generator}}
\subsubsection[{Visit\+Comparation\+Operator}]{\setlength{\rightskip}{0pt plus 5cm}void Code\+Generator\+::\+Visit\+Comparation\+Operator (
\begin{DoxyParamCaption}
\item[{{\bf A\+S\+T\+Node} $\ast$}]{node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{class_code_generator_ae81907e0b0f710fa6a92782894b93ccc}


visit a Comparation Operator node. 


\begin{DoxyParams}{Parameters}
{\em node} & node to be visited. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_i_visitor_a452639e59473aec73812d0b7f8b2f14d}{I\+Visitor}.

\hypertarget{class_code_generator_a83bc08b798440c64724bff2c81ab37b0}{\index{Code\+Generator@{Code\+Generator}!Visit\+Condition@{Visit\+Condition}}
\index{Visit\+Condition@{Visit\+Condition}!Code\+Generator@{Code\+Generator}}
\subsubsection[{Visit\+Condition}]{\setlength{\rightskip}{0pt plus 5cm}void Code\+Generator\+::\+Visit\+Condition (
\begin{DoxyParamCaption}
\item[{{\bf A\+S\+T\+Node} $\ast$}]{node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{class_code_generator_a83bc08b798440c64724bff2c81ab37b0}


visit a Condition node. 


\begin{DoxyParams}{Parameters}
{\em node} & node to be visited. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_i_visitor_abf1444f208c17bf4136a2f31156548c1}{I\+Visitor}.

\hypertarget{class_code_generator_ac76873dd0e7e1d28ca90d6bc4d5a0cf2}{\index{Code\+Generator@{Code\+Generator}!Visit\+Identifier@{Visit\+Identifier}}
\index{Visit\+Identifier@{Visit\+Identifier}!Code\+Generator@{Code\+Generator}}
\subsubsection[{Visit\+Identifier}]{\setlength{\rightskip}{0pt plus 5cm}void Code\+Generator\+::\+Visit\+Identifier (
\begin{DoxyParamCaption}
\item[{{\bf A\+S\+T\+Node} $\ast$}]{node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{class_code_generator_ac76873dd0e7e1d28ca90d6bc4d5a0cf2}


visit a Identifier node. 


\begin{DoxyParams}{Parameters}
{\em node} & node to be visited. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_i_visitor_aea34c3f0bdcd9ac4ac2b936561107e94}{I\+Visitor}.

\hypertarget{class_code_generator_a892b2452e473441c44b60582cdbb8b39}{\index{Code\+Generator@{Code\+Generator}!Visit\+Internal\+Condition@{Visit\+Internal\+Condition}}
\index{Visit\+Internal\+Condition@{Visit\+Internal\+Condition}!Code\+Generator@{Code\+Generator}}
\subsubsection[{Visit\+Internal\+Condition}]{\setlength{\rightskip}{0pt plus 5cm}void Code\+Generator\+::\+Visit\+Internal\+Condition (
\begin{DoxyParamCaption}
\item[{{\bf A\+S\+T\+Node} $\ast$}]{node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{class_code_generator_a892b2452e473441c44b60582cdbb8b39}


visit a Internal Condition node. 


\begin{DoxyParams}{Parameters}
{\em node} & node to be visited. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_i_visitor_a51f3f6ca2fee198d2bbe735b55a6af4b}{I\+Visitor}.

\hypertarget{class_code_generator_ae624dff58aa6f4db5038c119dc590f6a}{\index{Code\+Generator@{Code\+Generator}!Visit\+Logic\+Operator@{Visit\+Logic\+Operator}}
\index{Visit\+Logic\+Operator@{Visit\+Logic\+Operator}!Code\+Generator@{Code\+Generator}}
\subsubsection[{Visit\+Logic\+Operator}]{\setlength{\rightskip}{0pt plus 5cm}void Code\+Generator\+::\+Visit\+Logic\+Operator (
\begin{DoxyParamCaption}
\item[{{\bf A\+S\+T\+Node} $\ast$}]{node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{class_code_generator_ae624dff58aa6f4db5038c119dc590f6a}


visit a Logic Operator node. 


\begin{DoxyParams}{Parameters}
{\em node} & node to be visited. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_i_visitor_a50319511442d9f6dcd3e1004d8cfcad9}{I\+Visitor}.

\hypertarget{class_code_generator_aed794eaaf5a4d0e4e1f0ffd5d76b8884}{\index{Code\+Generator@{Code\+Generator}!Visit\+Message@{Visit\+Message}}
\index{Visit\+Message@{Visit\+Message}!Code\+Generator@{Code\+Generator}}
\subsubsection[{Visit\+Message}]{\setlength{\rightskip}{0pt plus 5cm}void Code\+Generator\+::\+Visit\+Message (
\begin{DoxyParamCaption}
\item[{{\bf A\+S\+T\+Node} $\ast$}]{node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{class_code_generator_aed794eaaf5a4d0e4e1f0ffd5d76b8884}


visit a Message node. 


\begin{DoxyParams}{Parameters}
{\em node} & node to be visited. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_i_visitor_a13d47fe96355953f377482213e9ec2b2}{I\+Visitor}.

\hypertarget{class_code_generator_a938a2c7e05bb717abbf4f042a723e2e3}{\index{Code\+Generator@{Code\+Generator}!Visit\+Name@{Visit\+Name}}
\index{Visit\+Name@{Visit\+Name}!Code\+Generator@{Code\+Generator}}
\subsubsection[{Visit\+Name}]{\setlength{\rightskip}{0pt plus 5cm}void Code\+Generator\+::\+Visit\+Name (
\begin{DoxyParamCaption}
\item[{{\bf A\+S\+T\+Node} $\ast$}]{node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{class_code_generator_a938a2c7e05bb717abbf4f042a723e2e3}


visit a Name node. 


\begin{DoxyParams}{Parameters}
{\em node} & node to be visited. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_i_visitor_af731d9fdf691ab6829fb0dbb1fd5d7cd}{I\+Visitor}.

\hypertarget{class_code_generator_a02a7c10944dc4f3eb1c24f9c9820ed1e}{\index{Code\+Generator@{Code\+Generator}!Visit\+Number@{Visit\+Number}}
\index{Visit\+Number@{Visit\+Number}!Code\+Generator@{Code\+Generator}}
\subsubsection[{Visit\+Number}]{\setlength{\rightskip}{0pt plus 5cm}void Code\+Generator\+::\+Visit\+Number (
\begin{DoxyParamCaption}
\item[{{\bf A\+S\+T\+Node} $\ast$}]{node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{class_code_generator_a02a7c10944dc4f3eb1c24f9c9820ed1e}


visit a Number node. 


\begin{DoxyParams}{Parameters}
{\em node} & node to be visited. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_i_visitor_a5506da11bbd7579b56ada2561e278377}{I\+Visitor}.

\hypertarget{class_code_generator_a34311fc43b053d187bc0e1ff4128a8b6}{\index{Code\+Generator@{Code\+Generator}!Visit\+Program@{Visit\+Program}}
\index{Visit\+Program@{Visit\+Program}!Code\+Generator@{Code\+Generator}}
\subsubsection[{Visit\+Program}]{\setlength{\rightskip}{0pt plus 5cm}void Code\+Generator\+::\+Visit\+Program (
\begin{DoxyParamCaption}
\item[{{\bf A\+S\+T\+Node} $\ast$}]{node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{class_code_generator_a34311fc43b053d187bc0e1ff4128a8b6}


visit a Program node. 


\begin{DoxyParams}{Parameters}
{\em node} & node to be visited. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_i_visitor_ae7fbb5a13c0f5e61463c1d51c739967a}{I\+Visitor}.

\hypertarget{class_code_generator_a3f33634b3560060f93cf2e6c4856944d}{\index{Code\+Generator@{Code\+Generator}!Visit\+Read\+Sensor@{Visit\+Read\+Sensor}}
\index{Visit\+Read\+Sensor@{Visit\+Read\+Sensor}!Code\+Generator@{Code\+Generator}}
\subsubsection[{Visit\+Read\+Sensor}]{\setlength{\rightskip}{0pt plus 5cm}void Code\+Generator\+::\+Visit\+Read\+Sensor (
\begin{DoxyParamCaption}
\item[{{\bf A\+S\+T\+Node} $\ast$}]{node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{class_code_generator_a3f33634b3560060f93cf2e6c4856944d}


visit a Read Sensor node. 


\begin{DoxyParams}{Parameters}
{\em node} & node to be visited. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_i_visitor_ae5864199e016b47cf6f4c5282d054e75}{I\+Visitor}.

\hypertarget{class_code_generator_ad97e2a05a3d2a9465dc23ee3c8008320}{\index{Code\+Generator@{Code\+Generator}!Visit\+Rule@{Visit\+Rule}}
\index{Visit\+Rule@{Visit\+Rule}!Code\+Generator@{Code\+Generator}}
\subsubsection[{Visit\+Rule}]{\setlength{\rightskip}{0pt plus 5cm}void Code\+Generator\+::\+Visit\+Rule (
\begin{DoxyParamCaption}
\item[{{\bf A\+S\+T\+Node} $\ast$}]{node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{class_code_generator_ad97e2a05a3d2a9465dc23ee3c8008320}


visit a Rule node. 


\begin{DoxyParams}{Parameters}
{\em node} & node to be visited. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_i_visitor_ade17c331d57ecf5dc71c21bfa9ce7fa7}{I\+Visitor}.

\hypertarget{class_code_generator_abdf24276fbd57a66defad1fd26ab6b5f}{\index{Code\+Generator@{Code\+Generator}!Visit\+Rules@{Visit\+Rules}}
\index{Visit\+Rules@{Visit\+Rules}!Code\+Generator@{Code\+Generator}}
\subsubsection[{Visit\+Rules}]{\setlength{\rightskip}{0pt plus 5cm}void Code\+Generator\+::\+Visit\+Rules (
\begin{DoxyParamCaption}
\item[{{\bf A\+S\+T\+Node} $\ast$}]{node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{class_code_generator_abdf24276fbd57a66defad1fd26ab6b5f}


visit a Rules node. 


\begin{DoxyParams}{Parameters}
{\em node} & node to be visited. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_i_visitor_a5f7f2e181f597bf70307d724caf94116}{I\+Visitor}.

\hypertarget{class_code_generator_a749ecd378e19750fb02f64fb1ed6208e}{\index{Code\+Generator@{Code\+Generator}!Visit\+Rules\+Set@{Visit\+Rules\+Set}}
\index{Visit\+Rules\+Set@{Visit\+Rules\+Set}!Code\+Generator@{Code\+Generator}}
\subsubsection[{Visit\+Rules\+Set}]{\setlength{\rightskip}{0pt plus 5cm}void Code\+Generator\+::\+Visit\+Rules\+Set (
\begin{DoxyParamCaption}
\item[{{\bf A\+S\+T\+Node} $\ast$}]{node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{class_code_generator_a749ecd378e19750fb02f64fb1ed6208e}


visit a Rules Set node. 


\begin{DoxyParams}{Parameters}
{\em node} & node to be visited. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_i_visitor_ac0f5f072db3f2a2f05c90266bc93eecd}{I\+Visitor}.

\hypertarget{class_code_generator_aaf381a525658f7f7af805b494aab63c0}{\index{Code\+Generator@{Code\+Generator}!Visit\+Variable@{Visit\+Variable}}
\index{Visit\+Variable@{Visit\+Variable}!Code\+Generator@{Code\+Generator}}
\subsubsection[{Visit\+Variable}]{\setlength{\rightskip}{0pt plus 5cm}void Code\+Generator\+::\+Visit\+Variable (
\begin{DoxyParamCaption}
\item[{{\bf A\+S\+T\+Node} $\ast$}]{node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{class_code_generator_aaf381a525658f7f7af805b494aab63c0}


visit a Variable node. 


\begin{DoxyParams}{Parameters}
{\em node} & node to be visited. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_i_visitor_aee0d0d7cea0b40de09e59ea1fa2ba175}{I\+Visitor}.

\hypertarget{class_code_generator_a69edbd517b828ecf95546e8499625b33}{\index{Code\+Generator@{Code\+Generator}!Visit\+Write\+Actuator@{Visit\+Write\+Actuator}}
\index{Visit\+Write\+Actuator@{Visit\+Write\+Actuator}!Code\+Generator@{Code\+Generator}}
\subsubsection[{Visit\+Write\+Actuator}]{\setlength{\rightskip}{0pt plus 5cm}void Code\+Generator\+::\+Visit\+Write\+Actuator (
\begin{DoxyParamCaption}
\item[{{\bf A\+S\+T\+Node} $\ast$}]{node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{class_code_generator_a69edbd517b828ecf95546e8499625b33}


visit a Write Actuator node. 


\begin{DoxyParams}{Parameters}
{\em node} & node to be visited. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_i_visitor_a603440d2064b5614ea96626f76ad7b21}{I\+Visitor}.



\subsection{Member Data Documentation}
\hypertarget{class_code_generator_ab14d47d4ee889675dff7e310cd30ac41}{\index{Code\+Generator@{Code\+Generator}!generated\+Code\+File@{generated\+Code\+File}}
\index{generated\+Code\+File@{generated\+Code\+File}!Code\+Generator@{Code\+Generator}}
\subsubsection[{generated\+Code\+File}]{\setlength{\rightskip}{0pt plus 5cm}ofstream Code\+Generator\+::generated\+Code\+File\hspace{0.3cm}{\ttfamily [private]}}}\label{class_code_generator_ab14d47d4ee889675dff7e310cd30ac41}


Output file. 



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
C\+:/\+Users/\+Caio/\+Dropbox/\+Mestrado/agents-\/language/\+Compiladores/\+Compiladores/\hyperlink{_code_generator_8h}{Code\+Generator.\+h}\item 
C\+:/\+Users/\+Caio/\+Dropbox/\+Mestrado/agents-\/language/\+Compiladores/\+Compiladores/\hyperlink{_code_generator_8cpp}{Code\+Generator.\+cpp}\end{DoxyCompactItemize}
